Most applications (i.e., computer programs) provide user interfaces through which a user can interact with the application. The user interfaces may be very sophisticated and provide the user with hundreds of different capabilities (e.g., auto correct and insert link). A user who is not very experienced with an application may not be aware of certain capabilities or may not know how to use certain capabilities. To assist such users with the user interface, applications typically provide a help system through which a user can request help information describing the various capabilities. The help information for an application is typically stored in a help file. A help file may have an entry for each topic of information that is available. For example, a word processing application that can automatically correct misspellings, an “AutoCorrect” capability, may have a help entry describing the capability. Each help entry may include the title or name of the topic and an article that describes the topic in some detail. FIG. 1 is a diagram that illustrates the structure of an example help file. In this example, the help file (which may implemented as a database) includes a help document 101 and an index 102. The help document contains the help entries of the help file, and the index provides a mapping from various keywords (including phrases) to the related topics in the help document. In this example, the keywords “AutoCorrect” and “Spelling Correction” are mapped to the help entry for the “AutoCorrect” topic. A keyword may be mapped to multiple topics. For example, the “AutoCorrect” keyword may be also mapped to a help entry explaining how to turn off the “AutoCorrect” capability.
FIGS. 2A and 2B illustrate a typical way of using a help system. When a user requests help, the help system displays a dialog box 201. The dialog box includes an input field 202 that allows a user to enter a keyword of interest. In this example, the user has entered the keyword “spelling.” The help system identifies all the keywords in the index file that begin with the word “spelling.” The help system then displays those keywords in a keyword display field 203. When a user selects one of the displayed keywords, the help system identifies the topics that are mapped to the selected keyword using the index and displays the titles of those topics to the user. The user can then select a topic of interest. When a topic is selected, the help system retrieves and displays the help article for the selected topic as shown in dialog box 204.
Typical help systems also allow users to enter queries or questions, rather than simply selecting from indexed keywords. When a user submits a query, the help system may search the help document to identify topics that match the user query. (A help file may include a search catalog that the help system searches, rather than searching the entire help document. The search catalog may be generated from the content file and can be used to improve the speed of searching.) The help system then displays the titles of the matching topics so that the user can selectively view the help articles that the user thinks may be relevant. FIG. 3 illustrates a dialog box for entry of a user query. Dialog box 301 includes an input field 302 where a user can enter their query. The query may be in the form of a question or a phrase or words of interest. In this example, the user entered the question “How do I stop my name from being changed?” This question might be asked, for example, if the user's name is “Juli” and the “AutoCorrect” capability is configured to automatically “correct” that word to “July” on the assumption that the user simply misspelled the month. After a query is entered, the help system identifies the topics that best match or that are most relevant to, the query. Help systems may use various well-known search algorithms for identifying the matching topics. The help system then displays the matching topics in a display field 303. The user can then select one of the displayed topics to view its help article.
Unfortunately, many of the help systems often do not locate any topics that the user finds relevant. In the example of FIG. 3, the help system determined that the topics “field names” and “stop words” best match the user query. The help system, however, did not identify the “AutoCorrect” topic because none of the non-noise words (e.g., “stop,” “name,” and “changed”) are contained in the content of the “AutoCorrect” topic. In such a situation, the user may not even be aware of the “AutoCorrect” capability and thus may not be able to formulate a query that would identify that topic. The user is only provided with topics that are not relevant to the user's query and has no effective way to identify the relevant topic.